from itsdangerous import TimedJSONWebSignatureSerializer as Serialzier

from apps.oauth.constants import OPENID_TOKEN_EXPIRE_TIME
from meiduomall import settings


def generate_access_token(openid):
    # 1、创建实例对象
    s = Serialzier(secret_key=settings.SECRET_KEY, expires_in=OPENID_TOKEN_EXPIRE_TIME)
    # 2、组织书籍
    data = {
        'openid': openid
    }
    # 3、加密处理
    token = s.dumps(data)  # 加密后是byte类型
    # 4、返回数据(返回字符串)
    return token.decode()


def check_access_token(token):
    # 1、创建实例对象
    s = Serialzier(secret_key=settings.SECRET_KEY, expires_in=OPENID_TOKEN_EXPIRE_TIME)
    # 2、解密数据
    result = s.loads(token)  # 这个数据是个字典,因为我们加密的时候的那个data就是加密的字典
    # 3、返回数据
    return result['openid']
